package br.com.controle.web;

import br.com.controle.ejb.PessoaSessionBean; 
import br.com.controle.entity.Pessoa;  
import br.com.controle.entity.TipoEndereco;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext; 
import javax.faces.model.SelectItem;

@ManagedBean(name = "pessoaController")
@SessionScoped
public class PessoaMBean {
    
    @EJB
    private PessoaSessionBean pessoaSessionBean;
    private Pessoa pessoa = new Pessoa();
    private Pessoa pessoaSelecionado;
    
    public PessoaMBean() {
    }
    
    public List getListaPessoas() { 
        return pessoaSessionBean.retrieve();  
    }     
    
    public void adicionarPessoa() {
        System.out.println("##adicionarPessoa");
        
        pessoaSessionBean.create(pessoa);        
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Nova pessoa adicionada com sucesso!"));
    }
    
    public void novaPessoa() {
        System.out.println("##novaPessoa");
        pessoa = new Pessoa();
    }     
    
    public void carregarPessoa() {
        System.out.println("##carregarPessoa" + pessoaSelecionado.getId());        
        pessoa = pessoaSessionBean.getPessoa(pessoaSelecionado);
    }    
    
    public void excluirPessoa() {
            pessoaSessionBean.delete(pessoaSelecionado);
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Excluído com sucesso!"));
    }    

    public Pessoa getPessoa() {
        return pessoa;
    }

    public void setPessoa(Pessoa pessoa) {
        this.pessoa = pessoa;
    }

    public Pessoa getPessoaSelecionado() {
        return pessoaSelecionado;
    }

    public void setPessoaSelecionado(Pessoa pessoaSelecionado) {
        this.pessoaSelecionado = pessoaSelecionado;
    }
    
    public javax.faces.model.SelectItem[] getTiposEndereco(){
        SelectItem[] options = null;
        List<TipoEndereco> tipoEndereco = pessoaSessionBean.getTipoEndereco();
        if (tipoEndereco != null && tipoEndereco.size() > 0)
        {
            int i = 0;
            options = new SelectItem[tipoEndereco.size()];
            for (TipoEndereco dc : tipoEndereco)
            {
                options[i++] = new SelectItem(dc, dc.getNome());
            }
        }
        return options;
    }        
}
